/* Prism components — chrome: header, nav, search, footer.
   Header collapses to a drawer on its own container width (≤820px), not the viewport. */

/* ── header ── */
.c-header{position:relative;background:var(--c-surface);border-bottom:1px solid var(--c-border);flex:none}
.c-header--sticky{position:sticky;top:0;z-index:50}
.c-header--transparent{background:transparent;border-color:transparent;color:#fff}
.is-scrolled .c-header--transparent{background:var(--c-surface);border-color:var(--c-border);color:inherit;box-shadow:var(--shadow-1)}
/* full-width bar: logo pinned near the left edge, actions pinned near the right edge.
   Responsive collapse uses a viewport @media query (below), NOT @container — a container
   element's own direct children (the burger) don't reliably receive its @container rules. */
.c-header__inner{display:flex;align-items:center;gap:var(--space-md);min-height:60px;padding-inline:clamp(1rem,2.5vw,2.5rem)}
/* logo (modern play-button mark; no wordmark) */
.c-logo{display:inline-flex;align-items:center;color:inherit;flex:none;font-size:var(--fs-lg)}
.c-logo__mark{height:1.9em;width:1.9em;flex:none;display:block;filter:drop-shadow(0 1px 4px rgba(79,70,229,.3))}
.c-header--centered .c-header__inner{justify-content:center}
.c-header__nav-wrap{display:flex}
.c-header__actions{display:flex;align-items:center;gap:var(--space-sm);margin-left:auto}
.c-header__burger{display:none;font-size:1.5rem;line-height:1;color:inherit}
.c-header__theme{font-size:1.2rem;line-height:1;color:inherit}

/* ── nav ── */
.c-nav{display:flex;align-items:center;gap:var(--space-md)}
.c-nav__link{display:inline-flex;align-items:center;gap:.35em;font-size:var(--fs-sm);font-weight:500;color:inherit;opacity:.85;white-space:nowrap}
.c-nav__link:hover{opacity:1;color:var(--c-accent)}
.c-nav__link .bi{font-size:1.05em}
/* ── category dropdowns (theme-design nav) ── */
.c-nav__item{position:relative;display:inline-flex;align-items:center}
.c-nav__caret{font-size:.8em;opacity:.65}
.c-nav__dd,.c-nav__flyout{position:absolute;min-width:172px;background:var(--c-surface);border:1px solid var(--c-border);
  border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:6px 0;z-index:60;
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s}
.c-nav__dd{top:100%;left:0;margin-top:7px}
.c-nav__dd::before{content:"";position:absolute;top:-9px;left:0;right:0;height:9px}
.c-nav__item:hover>.c-nav__dd{opacity:1;visibility:visible;transform:translateY(0)}
.c-nav__ddlink{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 16px;
  white-space:nowrap;color:var(--c-text);opacity:.9;font-size:var(--fs-sm)}
.c-nav__ddlink:hover{background:var(--c-surface-2);color:var(--c-accent);opacity:1}
.c-nav__subitem{position:relative}
.c-nav__flyout{top:-7px;left:100%;margin-left:3px;transform:translateX(6px)}
.c-nav__flyout::before{content:"";position:absolute;top:0;left:-9px;bottom:0;width:9px}
.c-nav__subitem:hover>.c-nav__flyout{opacity:1;visibility:visible;transform:translateX(0)}

/* ── search ── */
.c-search{display:flex;align-items:center;background:var(--c-surface-2);border:1px solid var(--c-border);
  border-radius:var(--radius-pill);padding:.15em .15em .15em .9em;max-width:280px;width:100%}
.c-search__input{flex:1;min-width:0;background:transparent;border:0;outline:0;font-size:var(--fs-sm)}
.c-search__btn{display:inline-flex;align-items:center;justify-content:center;width:2em;height:2em;border-radius:var(--radius-pill);color:var(--c-text-muted)}
.c-search__btn:hover{color:var(--c-accent)}

/* ── langswitch (EN / 中文 dropdown) ── */
.c-langswitch{position:relative;flex:none}
.c-langswitch__btn{display:inline-flex;align-items:center;gap:.4em;height:34px;padding:0 .7em;font-size:var(--fs-sm);line-height:1;
  color:var(--c-text);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius-pill);
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.c-langswitch__btn:hover,.c-langswitch__btn.is-open{border-color:var(--c-accent);color:var(--c-accent)}
.c-langswitch__btn .bi-translate{font-size:1.05em}
.c-langswitch__cur{font-weight:500}
.c-langswitch__caret{font-size:.66em;opacity:.6;transition:transform var(--dur) var(--ease)}
.c-langswitch__btn.is-open .c-langswitch__caret{transform:rotate(180deg)}
.c-langswitch__menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:150px;display:flex;flex-direction:column;gap:2px;
  padding:6px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3)}
.c-langswitch__opt{display:flex;align-items:center;justify-content:space-between;gap:1.2em;width:100%;padding:.55em .7em;border-radius:var(--radius-md);
  font-size:var(--fs-sm);color:var(--c-text);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.c-langswitch__opt:hover{background:var(--c-surface-2)}
.c-langswitch__opt.is-active{color:var(--c-accent);font-weight:600}
.c-langswitch__opt .bi-check2{font-size:1.05em}

/* ── account widget (header): login button for guests, avatar + dropdown when logged in ── */
.c-account{position:relative;flex:none}
.c-account__btn{display:inline-flex;align-items:center;gap:.4em;height:34px;padding:0 .55em 0 .25em;font-size:var(--fs-sm);line-height:1;
  background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius-pill);color:var(--c-text);cursor:pointer;max-width:11em}
.c-account__btn:hover,.c-account__btn.is-open{border-color:var(--c-accent);color:var(--c-accent)}
.c-account__avatar{width:26px;height:26px;flex:none;border-radius:50%;overflow:hidden;background:var(--c-surface);display:flex;align-items:center;justify-content:center}
.c-account__avatar img{width:100%;height:100%;object-fit:cover}
.c-account__name{font-weight:500;max-width:6.5em}
.c-account__vip{color:#e0a73a;font-size:.95em}
.c-account__caret{font-size:.66em;opacity:.6;transition:transform var(--dur) var(--ease)}
.c-account__btn.is-open .c-account__caret{transform:rotate(180deg)}
.c-account__menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:194px;display:flex;flex-direction:column;gap:2px;
  padding:6px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-2)}
.c-account__head{display:flex;flex-direction:column;gap:.35em;padding:.5em .7em .65em;border-bottom:1px solid var(--c-border);margin-bottom:4px}
.c-account__hname{font-weight:600;font-size:var(--fs-sm)}
.c-account__badge{display:inline-flex;align-items:center;gap:.3em;align-self:flex-start;font-size:var(--fs-xs);font-weight:600;
  padding:.18em .6em;border-radius:var(--radius-pill);background:linear-gradient(120deg,#f6c453,#e0a73a);color:#3a2a05}
.c-account__badge--off{background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text-muted)}
.c-account__item{display:flex;align-items:center;gap:.7em;padding:.55em .7em;border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--c-text)}
.c-account__item .bi{font-size:1.05em;opacity:.85;flex:none}
.c-account__item:hover{background:var(--c-surface-2);color:var(--c-accent)}
.c-account__item--logout{color:var(--c-danger)}
.c-account__item--logout:hover{background:color-mix(in srgb,var(--c-danger) 12%,transparent);color:var(--c-danger)}
.c-account__sep{height:1px;background:var(--c-border);margin:4px 2px}
.c-account__login{display:inline-flex;align-items:center;gap:.4em;height:34px;padding:0 .95em;font-size:var(--fs-sm);font-weight:600;flex:none;
  background:var(--c-accent);color:var(--c-accent-ink);border-radius:var(--radius-pill)}
.c-account__login:hover{filter:brightness(1.08)}

/* ── footer ── */
.c-footer{margin-top:var(--space-xl);padding-block:var(--space-lg);background:var(--c-surface);border-top:1px solid var(--c-border)}
.c-footer__nav{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center;margin-bottom:var(--space-sm)}
.c-footer__nav a{font-size:var(--fs-sm);color:var(--c-text-muted)}
.c-footer__nav a:hover{color:var(--c-accent)}
.c-footer__copy{text-align:center;font-size:var(--fs-xs)}

/* ── back-to-top (floating bottom-right; revealed by prism.js after scrolling .page-scroll) ── */
.c-totop{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:80;
  width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--c-accent);color:var(--c-accent-ink);font-size:1.25rem;line-height:1;
  box-shadow:var(--shadow-3);cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),visibility var(--dur) var(--ease),filter var(--dur) var(--ease)}
.c-totop.is-visible{opacity:1;visibility:visible;transform:none}
.c-totop:hover{filter:brightness(1.08);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.c-totop{transition:opacity var(--dur) var(--ease),visibility var(--dur) var(--ease)}}

/* ── responsive: actions stay in the bar; nav collapses to a centered drawer ── */
@media (max-width:820px){
  /* tighten the bar on mobile so logo, search, lang, theme and burger fit one row */
  .c-header__inner{padding-inline:var(--space-md);gap:var(--space-sm)}
  .c-header__burger{display:inline-flex;flex:none}
  /* display:contents dissolves the actions box (its margin-left:auto stops applying),
     so logo, search, lang, theme and burger become ONE flex row of the bar. Only the
     search grows; the rest are fixed, so the burger is always placed and on-screen. */
  .c-header__actions{display:contents}
  .c-search{flex:1 1 0;min-width:0;width:auto;max-width:38vw}
  .c-langswitch,.c-header__theme{flex:none}
  /* compact the langswitch to an icon-only button on mobile so the menu button fits */
  .c-langswitch__btn{padding:0;width:34px;justify-content:center;gap:0}
  .c-langswitch__cur,.c-langswitch__caret{display:none}
  /* account collapses to an icon-only control to match the langswitch */
  .c-account{flex:none}
  .c-account__name,.c-account__caret,.c-account__vip{display:none}
  .c-account__btn{padding:0;width:34px;justify-content:center;gap:0;max-width:none}
  .c-account__avatar{width:30px;height:30px}
  .c-account__login{padding:0;width:34px;justify-content:center}
  .c-account__logintxt{display:none}
  /* nav becomes the drawer below the bar; names centered */
  .c-header__nav-wrap{position:absolute;inset:60px 0 auto 0;z-index:55;display:none;max-height:calc(100dvh - 60px);overflow-y:auto;
    padding:var(--space-md);background:var(--c-surface);border-bottom:1px solid var(--c-border);box-shadow:var(--shadow-2)}
  .c-header__nav-wrap.is-open{display:block}
  .c-nav{flex-direction:column;align-items:center;gap:var(--space-sm)}
  .c-nav__link{justify-content:center;width:100%;padding:var(--space-xs) 0}
  /* dropdowns become inline expanded sublists on mobile (no hover) */
  .c-nav__item{display:block;width:100%}
  .c-nav__dd,.c-nav__flyout{position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;border:none;background:transparent;padding:0;margin:0;min-width:0}
  .c-nav__ddlink{justify-content:center;padding:var(--space-xs) 0;opacity:.8}
  .c-nav__flyout{padding-left:0}
  .c-nav__caret{display:none}
}
